Das ist korrekt, denn stell dir vor, das Programm, dass die geänderten Daten liest und nichts davon weiß, würde diese wieder zurückschreiben.

Ausserdem läuft der Trigger ja grundsätzlich ab.
Du müsstest also im Trigger feststellen, von welchem Programm du aufgerufen wurdest um zu entscheiden, ob Daten geändert werden sollen, denn ein Programm dass nur einen blöden CHAIN/UPDATE macht um die Satzsperre wieder aufzuheben, würde die durch den Trigger veränderten Daten wieder zurückschreiben.

Du kannst dir also ausrechnen, wann dein 5%-Aufschlag zu einem Feldüberlauf führt.

Fazit:
Ganz schlechter Programmansatz.