Hello,
I was playing around with the API explorer in the Catalog API to understand how the UpsertCatalogObject endpoint works as effectively the common gateway of POST and PUT. After using the correct (Object_ID, version) pair on the second UpsertCatalogObject request, I was able to confirm through the SearchObjects API call that PUT had occured correctly: my Sandbox environment only has one CatalogObject, and it is the one that I provided in the second UpsertCatalogObject payload.
I noticed, however, that when I left some fields that I have used for the first Upsert unset for the second, that those fields ended up unset on the object left on the server.
This, to me, means that UpsertCatalogObject is a POST and PUT - only API. Is this correct? If so, is there perhaps a different API or mechanism I could use if I ever wanted to serve a PATCH?