Я бы сделал 2 разных объекта для этого.Если вы хотите, чтобы это сопоставлялось с одной сущностью в вашем приложении, вы должны написать класс доступа к данным, который (на основе данных вашей единственной сущности) определяет, делать ли обновление или вставку.
И я былично я никогда не использую триггер для такой вещи, так как для меня это бизнес-логика, которая должна быть раскрыта в приложении, чтобы ее можно было протестировать.