read for update to avoid deadlocks

this forces us to serialize updates to the same customer, but
logically that's what we want