int startTransaction(String description, AbortedTransactionListener listener,
			Function<DomainObjectLockedException, Boolean> exceptionHandler)
			throws TerminatedTransactionException {

		while (true) {
			try {
				return transactionMgr.startTransaction(this, description, listener, true);
			}
			catch (DomainObjectLockedException e) {
				if (!exceptionHandler.apply(e)) {
					return -1;
				}
			}
		}
	}
Release the modification lock which is associated with the specified LockingTaskHandler.
Ghidra/Framework/Project/src/main/java/ghidra/framework/data/DomainObjectAdapterDB.java