Segue exemplo de como utilizar transações no progress.

DEFINE VARIABLE nome AS CHARACTER.
ASSIGN nome = ‘sl4v3r’.
MESSAGE nome VIEW-AS ALERT-BOX.

DO TRANSACTION:
   ASSIGN nome = ‘new sl4v3r’.  
   MESSAGE nome VIEW-AS ALERT-BOX.
   UNDO, LEAVE.
END.

MESSAGE nome VIEW-AS ALERT-BOX.

Veja que o UNDO, LEAVE desfaz o que está dentro da transação.