¿Cómo saber qué un hilo hace un-lock con seguridad a la terminación, mientras que todos los métodos que ya se manejan?


En un proyecto se puede ejecutarse durante mucho tiempo y crear muchos hilos. Al siguiente código, me pregunto si tengo que proteger el bloqueo además de try-catch general en todo del método setData (datos MyData)
(no soy codicioso, uso + -5 hilos totalmente)

public class MyFactory {

private ReadWriteLock rwl = new ReentrantReadWriteLock();
    private Lock readLock = rwl.readLock();
    private Lock writeLock = rwl.writeLock();
    
    private static MyFactory _instance = new MyFactory();
    private static Map<Integer, MyData> mapDatas = new HashMap<>();
    
    public static MyFactory getInstance() {
        return _instance;
    }
    
    
    public void setData(MyData data) {
        writeLock.lock();   
        try {
            mapData.put(...);
        } catch (Exception exc) {
            ...
        } finally {
            writeLock.unlock();
        }
    }