public void addBlock(InstructionBlock block) {
		if (block.isEmpty()) {
			// multiple empty blocks at the same address are possible
			emptyBlocks.add(block);
			return;
		}
		if (block.isFlowStart() || blockRangeMap.getObject(block.getFlowFromAddress()) == null) {
			startAddresses.add(block.getStartAddress());
		}
		InstructionBlock oldBlock = blockMap.put(block.getStartAddress(), block);
		if (oldBlock != null && oldBlock != block) {
			throw new AssertException("More than one block exists with the same start address");
		}
		addressSet.addRange(block.getStartAddress(), block.getMaxAddress());
		instructionCount += block.getInstructionCount();
		blockRangeMap.setObject(block.getStartAddress(), block.getMaxAddress(), block);
	}
Add an Instruction block to this Instruction Set. 
If the block is empty it will only be added to the empty-list and will not
be added to the maps or block iterator
@param block the block to add.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/InstructionSet.java