I am not sur to anderstand,
In my table, the 2 concerned fields (id_race, fname) are checked as 'Required', normal, it's a Key.
The generated xml is :
		<field name="id_race"
				alias="_id_race_value"
				label="JBREEDING_FIELD_RACES"
				filter="INT"
				listKey="id"
				labelKey="value"
				type="ckcombo"
				nullLabel="JBREEDING_JSEARCH_SELECT_RACES"
				required="true"
				class="validate[required]">
			<unique alias="fname_id_race" fields="fname,id_race"/>
		</field>
		<field name="fname"
				alias="fname"
				label="JBREEDING_FIELD_NOM"
				filter="STRING"
				type="cktext"
				required="true"
				class="validate[required]">
			<unique alias="fname_id_race" fields="fname,id_race"/>
		</field>
 
so class is "validate[required]", not "Default" ...
You can test with my project,
P -> JBreeding3.5
T-> Etalons
L-> Admin (Gestion des Etalons)
Choose 'Siberian Husky' and try to save New dog named 'CHIEN1' (already exits) ...
You get the SQL error and not the Duplicate Warning.