Я обычно делал в таких случаях и операцию проверки наличия самостоятельную, и возврат "уже наличия" при попытке добавления. И иногда вариант-обёртку для последнего, где сразу и ASSERT добавлен, что элемента ранее не было.