Should we favor multiple INSERTs or multiple UPDATEs
All changes to the database involve transactions and may result in locks.
In general, locks are a problem only if concurrent transactions try to access/modify the same row. But concurrent updates are unlikely to happen for a shopping cart.

Postgres does not actually update rows. Other transactions that started before the UPDATE transaction has committed must be able to see the old row, so it can be necessary for the old row version and the new row version to exist at the same time. Therefore, an UPDATE command just inserts a new row, and marks the old row as outdated.

I do not see any upside for doing one INSERT per click. (Except that your code has to choose to do either INSERT or UPDATE, or to use INSERT … ON CONFLICT DO UPDATE.)