If it's "private", why not make it truly private by declaring it as a separate variable instead of attaching it to object where it is still effectively available?

I would prefer to retain the releaseLock, and even add an obtainLock function, as a way for developers to manually manage the lock state of models. If there were 3rd party apps. built on releaseLock, you would have just broke their code.