<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def update(self, addr, raw_addr, name=None, rssi=None):
 """Updates the collection of results with a newly received scan response. Args: addr (str):
 Device hardware address in xx:xx:xx:xx:xx:xx format. raw_addr (bytearray):
 Device hardware address as raw bytes. name (str):
 Device name (if available) as ASCII text. May be None. rssi (float):
 Latest RSSI from the scan result for the device. May be 0. Returns: True if an existing device was updated, False if a new entry was created. """

        if addr in self._devices:
            # logger.debug('UPDATE scan result: {} / {}'.format(addr, name))
            self._devices[addr].update(name, rssi)
            return False
        else:
            self._devices[addr] = ScanResult(addr, raw_addr, name, rssi)
            logger.debug('Scan result: {} / {}'.format(addr, name))
            return True