If I PUT a record without including every field, those missing fields are emptied losing the data that they held.
Is there a way to PATCH a record by only supplying the modified fields ensuring the rest are untouched?
Yes. Have a look at the api documentation for your base. For each table there is a section called “Update a record”. This describes how to do a curl PATCH.