If empty dict passed for data, don't call update_item

@nedbat @singingwolfboy Please review. Unit tests were passing dicts for the data and it was forcing what should have been an innocuous save_item for the empty dict.