Nope, it was a mistake. According to sqlalchemy [docs](http://docs.sqlalchemy.org/ru/latest/orm/session.html#managing-transactions), we should handle rollbacks manually here. Fixed.