Support experimental contacts API

What is incorrect about the implementation? Are we doing an update instead of a 'create or update' for PUT in the real API?