As far as I can tell the only way to get into begin() is if we're in state updating (or updating_previous, but then we're not in that block). So we know that we want to commit. Maybe you want an assert here, but I believe an if can only hide bugs?