Bueno, más o menos es la forma estandard de hacer las cosas desde Delphi.
(1) Abres la transacción
(2) Ejecutas las operaciones que quieres que se hagan TODAS como una unidad
(3) Si ha ido todo bien, realizas el COMMIT (que acepta TODOS los cambios)
(4) Si ha ocurrido algun error, realizas un COMMIT que deshace TODOS los cambios.
Código Delphi
[-]
var
Level: integer;
begin
Level:= Conexion.BeginTrans;
try ...
Conexion.CommitTrans;
except
on E:Exception do begin
Conexion.RollbackTrans;
end;
end