bulk_upsert operates on models rather than dictionaries