I think you might struggle here.
If you *dont* set the index to unusable, then the constraint is still enforced
SQL> create table t ( x int, y int );
Table created.
SQL>
SQL> CREATE INDEX T_pk ON T (x);
Index created.
SQL> alter table t add constraint t_pk primary key(x) rely;
Table altered.
SQL>
SQL> ALTER SESSION SET skip_unusable_indexes = TRUE;
Session altered.
SQL> INSERT INTO T VALUES (-1,-1);
1 row created.
SQL> INSERT INTO T VALUES (-1,-1);
INSERT INTO T VALUES (-1,-1)
*
ERROR at line 1:
ORA-00001: unique constraint (MCDONAC.T_PK) violated
If I *do* make the index unusable, then I'll get issues on insert
SQL> drop table t purge;
Table dropped.
SQL>
SQL> create table t ( x int, y int );
Table created.
SQL>
SQL> CREATE INDEX T_pk ON T (x);
Index created.
SQL> alter table t add constraint t_pk primary key(x) rely;
Table altered.
SQL>
SQL> ALTER SESSION SET skip_unusable_indexes = TRUE;
Session altered.
SQL> alter index t_pk unusable;
Index altered.
SQL>
SQL> INSERT INTO T VALUES (-1,-1);
INSERT INTO T VALUES (-1,-1)
*
ERROR at line 1:
ORA-01502: index 'MCDONAC.T_PK' or partition of such index is in unusable state
SQL> INSERT INTO T VALUES (-1,-1);
INSERT INTO T VALUES (-1,-1)
*
ERROR at line 1:
ORA-01502: index 'MCDONAC.T_PK' or partition of such index is in unusable state
SQL>
You would need to disable the constraint