It is not possible with your table definition. You first primary key is too long, out of usual DB best practices.
Could you consider converting ID to a non primary key field, and managing an internal number RRN as first primary key. You can then create a secondary index for unicity of ID, only then you would be able to lock individual records.
Of course some logic has to be changed in your programs. Mainly select from secondary index to identify RRN from ID, if not found use NUMBER_GET_NEXT to generate a new number, with a range number defined with transaction SNRO.
Regards,
Raymond