update() with upsert ($set vs not using $set) vs save()