FETCH X ROWS liest max. soviele Sätze, wie in X angegeben. Die Struktur muss allerdings mindestens genausoviele Vorkommen aufweisen, wie du benötigst.
In der SQLCA steht dann auch, wieviele Zeilen tatsächlich gelesen wurden (kann ja ggf. auch weniger sein).

Einen positionierten Update (update current cursor) oder Delete kannst du allerdings vergessen, da es keinen Current-Record gibt.
Also eine geblockte Verarbeitung schließt einen Update-Cursor aus.

Delete oder Update solltest du dann sowieso als eigene SQL-Anweisung mit Key (also Where-Klausel) kodieren.