Extensions that blindly call $dbw->begin()/commit() break any pending transactions by pre-maturely committing them. This causes log warnings and breaks atomicity. Such callers should instead use:
...to accomplish similar ends.
Note that Job classes and Maintenance scripts are usually exceptions, as they have control of the outermost scope of database transactions, so they can use begin()/commit().