I asked a nearly identical question herehere
Spring REST follows your model (PUT = client supplied resource id). But they admit that it was a serious debate. Referring to the spec isn't good enough. It just isn't clear on this issue (or at least, clear enough).
As for partial updates, my understanding is that, for those, you would use the PATCH command