App Engines are only supposed to issue commits after a step or later. I'm currently writing single step peoplecode programs that use CI's.
The way it was programmed, when an error occurred, a rollback was issued.
Well errors were happening but rows were still being saved off to some of the tables.
The culprit was a CI calling an App Engine and that App Engine was completing steps (and therefore calling DB commits).
Just something to look out for.