append or extend is adding keys without updating existing keys. update can add keys and update existing keys.
put will blow away existing keys if they dont exist in the new payload. which is why it cant be upsert.
put will blow away existing keys if they dont exist in the new payload. which is why it cant be upsert.
that said, usually PUT is meaningful for a URL (or URI), and in these circumstances it's like upsert, and it cannot blow away other keys, as it operates on one key, given by the URL
of course if we assume a batch endpoint, sure, it then can do non-upsert-like things