How are you attempting this, through the rest API? I had similar problems, and syncing one database with baserow will be a common pattern for many people I think. This is because baserow can serve as a front-end for apps which otherwise don’t have a GUI.
I don’t have a good solution, and airtable has the same issue. You need to retrieve all the records first, and separate your data into inserts and updates.
In my opinion, it would make sense to have a generic python module which can accept pandas dataframes.
Fortunately, our data are somewhat static. If ID is the same, we know all other field has to be the same. So we can batch by other fields, so each call we don’t have to look through everything.