Generally speaking, a failed method invocation should leave the object in the state that it was in prior to the invocation
Not sure how useful this would be, but I feel like this could be fairly-easily supported on the language level through some special keyword