Release locks also in Precommit errors
When an error happened in Precommit the locks were not released. I also added testing here.
BTW: When I remove the async on the precommit test method the error gets somehow still thrown/rejected but not catched at all by the test. thats strange because precommit is "MaybePromise" and so could be sync?