InstructionDB getInstructionDB(DBRecord rec) {
		lock.acquire();
		try {
			if (rec != null) {
				InstructionDB inst = (InstructionDB) cache.get(rec);
				if (inst != null) {
					return inst;
				}
				long addr = rec.getKey();
				Address address = addrMap.decodeAddress(addr);
				int protoID = rec.getIntValue(InstDBAdapter.PROTO_ID_COL);
				byte flags = rec.getByteValue(InstDBAdapter.FLAGS_COL);
				InstructionPrototype proto = protoMgr.getPrototype(protoID);
				inst = new InstructionDB(this, cache, address, addr, proto, flags);
				return inst;
			}
			return null;
		}
		finally {
			lock.release();
		}
	}
Get the InstructionDB object from the cache; if it is not in the cache, create a new DB 
object and add it.
@param rec record for the instruction
@return the instruction
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/code/CodeManager.java