When executing the "updateTestingRollback" goal, is the precondition of a changeset evaluated just once (before the first update) or twice (before each of the two updates)?
Check if exists a record with ID = 1, if not exists then insert two rows
Delete only the second row (the one with id =2)
Is the precondition re-checked?
If so, the sql block is not called; otherwise it gets called, throwing an error (duplicated key).
I know that in this example i'm not doing right with the rollback (it shoould delete two rows), but please take it just as an example in order to have a confirmation about the way it's expected to work.