At the C level,
is just a shortcut for
override=1 PyDict_Merge(old, new, override)
C extensions can use PyDict_Merge directly with override=0, which keeps the current value in case of duplicate keys.
Python code can only use update, which means that override is always true. Is there a good reason this?