Question about 409 Conflict Errors

A lingering question of mine from the Intro to the REST API session at the conference: So, a 409 should be generated if you attempt a PUT on an object that has been update since your last GET.  Where does that timestamp come from?  Is it managed internally, some kind of tracker with the session, or is it based on a timestamp supplied with the call?