release_locks_on_close has no effect if the cursor scan occurs at isolation level 1.
The default behavior at isolation levels 2 and 3 if the transaction is committed or rolled back before the cursor is closed is for the SAP ASE server to release the shared locks acquired by the cursor until that point, with the exception of the lock on the last fetched row. If you use release_on_locks_close, the shared locks acquired by the cursor exist until the cursor is closed.
1) sp_cursorinfo 2> go
Cursor name 'c' is declared at nesting level '0'. The cursor is declared as NON-SCROLLABLE RELEASE_LOCKS_ON_CLOSE cursor. The cursor id is 917505. The cursor has been successfully opened 0 times. The cursor will remain open when a transaction is committed or rolled back.