Fix in RunCommutes() exception handling.

If somebody would be so crazy to call Rollback(false) in a commute, the commuted
items would be left unmerged and un-rolled-back, skipped by DoRollback.