Der Update wird wie auch der Select über die Where-Klausel zugriffsoptimiert.

Wenn du natürlich einen Update für mehrere Sätze durchführst, bricht der SQL bei der ersten Sperre ab.

Hier hilft ggf. tatsächlich ein vorheriger "select ... for update of" mit anschließendem "update ... where current of".
Das mag zwar etwas langsamer sein, aber wenn du beim FETCH die Satzsperre ggf. nicht erhalten kannst (SQLCODE < 0), kannst du mit einem FETCH RELATIVE den Satz überspringen und ggf. später wieder bearbeiten.