This shows, once more, that humans are bad with modes. You have two copies of the repo, one in a transaction and one not in a transaction.
The problem is that the thing you use to build the transaction can also be used to directly manipulate the DB. A better API design would be to separate those two things.
The problem is that the thing you use to build the transaction can also be used to directly manipulate the DB. A better API design would be to separate those two things.