Process the array laDe to remove the non-buffered alias' first (instead of checking the buffering mode inside the transaction. Then you code would be something like this;
* lsDe() already existsLOCAL llRollBack
llRollBack = .F.
BEGINTRANSACTIONFOR x = 1TOALEN(laDe,1)
IF NOT TableUpdate(1,.F.,laDe(x,#))
llRollBack = .T.
EXITENDIFENDFORIF llRollBack
ROLLBACKELSEENDTRANSACTIONENDIF