Stai usando modelli in Yii, è abbastanza semplice .. prova a caricare il tuo modello dove sospetti di avere voci duplicate, se trovi la voce il modello è caricato altrimenti null viene restituito. ora se il tuo modello è nullo crea semplicemente un nuovo modello. rest è il tuo codice normale per inserire un nuovo record.
//try to load model with available id i.e. unique key
$model = someModel::model()->findByPk($id);
//now check if the model is null
if(!$model) $model = new someModel();
//Apply you new changes
$model->attributes = $attributes;
//save
$model->save();
Fare riferimento al metodo di aggiornamento dei controller di post nel blog Yii dell'app di esempio. Potrei sbagliarmi con l'ortografia dei nomi delle funzioni, mi dispiace per quello.