Olá Peter,
A tabela "Clientes" está dentro de um DBC? Pergunto isso pois no seu exemplo, caso ela estivesse, um erro seria lançado já na função CURSORSETPROP(), que também não é permitida dentro de uma transação. Outra coisa: se esta tabela for uma free-table, a sua transação é "meramente ilustrativa", por assim dizer, vito que transações só podem ser usadas em linked tables. Sendo esta tabela uma free-table é como se a transação não existisse e o comportamento do TABLEREVERT() vai seguir normal. Além disso, os erros que normalmente ocorrem quando lançamos um TABLEREVERT() ou um CURSORSETPROP() dentro de uma transação não serão lançados. Em suma, a transação está lá (TXNLEVEL() retorna > 0) mas a transação de fato não existe.
Espero ter ajudado.