Couple of thoughts - firstly ENQUEUE_READ returns an array of type SEQG3 which contains a "GMODE" column... my (very) brief testing indicates this returns X, E, O etc...however it doesn't seem to clearly identify which SAP session for the user has the lock i.e. it could be a different user session than the current one.
So when we've needed to keep track of whether or not the current user session is holding the enqueue we simply set a global variable (e.g. "g_have_lock = abap_true") that we test thereafter... sometimes we wrap this logic up in a global class so lower layers of logic can query a class attribute / method.
Jonathan