code: def add(self, new_hw_map):
          
          new_route = new_hw_map.route
          if new_route in self.raw_maps:
              raise KeyError("HW Map already exists: {0:s}".format(new_hw_map.route))
  
          common_addresses = set(self).intersection(new_hw_map)
          if common_addresses:
              raise ValueError("An address in {0:s} already exists in the manager".format(new_route))
          # all ok, add it all
          self.raw_maps[new_route] = new_hw_map
          self.update(new_hw_map)
docs: Add the HW map only if it doesn't exist for a given key, and no address collisions