Hallo,
seid Ihr sicher, dass die Transaktionssteuerung so funktioniert?
Ich arbeite nicht mit ZEOS, aber ein schnelles googeln brachte zu Tage, dass wenn die Zeos-Connection AutoCommit=True eingestellt hat, dann macht sie das auch, d.h. nach jedem Statement wird ein Commit gemacht, auch nach dem begin transaction.
Über das Connection-Objekt kann man mit den Methoden StartTransaction, Commit und Rollback die Transaktionssteuerung "richtig" machen.
Leider hast Du nicht das ganze Projekt hier gepostet, somit musst Du es selber ausprobieren
Gruß