public ExecutableRecord newExecutableLibrary(String enm, String arc, RowKey id)
			throws LSHException {
		ExecutableRecord newexe = new ExecutableRecord(enm, arc, id);
		if (!exerec.add(newexe)) { // Check for duplicate executable
			ExecutableRecord oldexe = exerec.floor(newexe);
			if (oldexe.compareMetadata(newexe) != 0) {
				throw new LSHException("Duplicate md5 hash, different metadata");
			}
			if ((oldexe.getRowId() != null) && (id != null) && (!oldexe.getRowId().equals(id))) {
				throw new LSHException("Overwriting existing executable id");
			}
			newexe = oldexe;
		}
		return newexe;
	}
Create a new "library" executable in the container.
Functions in this container (will) have no body or address
@param enm is the name of the library
@param arc is the architecture of the library
@param id is the database id associated with the library (may be null)
@return the new ExecutableRecord object
@throws LSHException if attributes are invalid or the
  library already exists with different metadata
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/description/DescriptionManager.java