Api doesn't update record vu creates new
The snippet looks correct to me, Can you try using 'contact_id' instead of 'id' as sometimes it did work for me. I am having hard time to recollect the scenario why i had to use 'contact_id' over 'id'.

Cheers

Pradeep