TODO: rollback if oops on updating sold