Peter,
No you have the idea of transaction wrong. A transaction is used to group a number of table actions into a single all or none operation. Generally when used with buffering all of the inserting and replacing will have all taken place before the transaction starts. The transaction would be soething like this;
BEGIN TRANSACTION
llRollBack = .F.
IF NOT TableUpdate(0,.f.,"Table1")
llRollBack = .T.
ELSE
IF NOT TableUpdate(0,.f.,"Table2")
llRollback = .F.
ELSE
IF NOT TableUpdate(0, .F., "Table3)
llRollBack = .T.
ENDIF
ENDIF
ENDIF
IF llRollBack
ROLLBACK
ELSE
ENDTRANSACTION
ENDIF