Simulei a situação de um erro e mostrei na imagem na seta os dois comandos de deletar um registro e utilizando as rotinas de transação do scriptcase conforme a imagem e o que está acontecendo na seguinte ordem (Banco SQLSERVER):
- sc_begin_trans();
 - apagar();
 - executa o primeiro delete
 - executa o segundo delete (ai gera o erro)
 - ai vai para o sc_rollback_trans();
 - mostra a mensagem do segundo erro
 
Ai que está problema, mesmo passando pelo rollback o primeiro registro que foi apagado não é desfeito!
Algum amigo já passou por situação parecida e sabem como solucionar? Tem alguma configuração no sqlserver para ativar ou desativar as transações?
      
    