You could perhaps remove the FOR UPDATE statement.

This locks the rows I believe which is a good idea in some SQL and PL/SQL statements but if you update one row then commit it doesnt seem neccessary.

The FOR UPDATE could well be loading all rows into a rollback segment yes.

Please post what you did to fix this in the end.

Thx