Its not just LOCK_FAILURE.  There's also REJECTED, which means someone else committed to the branch between when we read it above, and now when we try to update it.

But I think that's it, all of the other states are internal exceptions.