close and abort are mutually exclusive, so I think it only worths for update()