The SAVEPOINT command is provided, to provide the ability to only roll back part of a long transaction.
Here is a simple illustration for Using SAVEPOINT commands
insert into my_table values (...); /* operation #1 */ savepoint sp_1; insert into table_b select ... from table_c where ...; /* operation #2 */ savepoint sp_2; update my_table set ... where ...; /* operation #4 */ insert into table_b select ... from table_e where...; /* operation #6 */ commit;