added bulk upsert method