update user - insert if not present, update otherwise