use upsert to update user info