You want "trigger".
Treat it like a virtual column.
ie you need to disable the Automatic DML from touching that column.
It looks like this guy got the virtual column to work: help is greatly needed with page processing in APEX
I'm not sure if it is even possible to tell the "Automatic DML" to not touch the PK column.
(I don't use "Automatic DML" because all of my DMLs are hidden in packages.)
If you decide to go the DIY DML route, don't forget that you can use the RETURNING INTO clause to populate the hidden/display-only item type that hold the Primary Key
insert into emp (ename) values ( :P3_ENAME) returning EMPNO into :P3_EMPNO;