set_attributes (and `add`) now apply nested attributes recursively