<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_firmware(self, device, id_override=None, type_override=None):
 """ Make a call to the update_firmware endpoint. As far as I know this is only valid for Wink hubs. Args: device (WinkDevice):
 The device the change is being requested for. id_override (String, optional):
 A device ID used to override the passed in device's ID. Used to make changes on sub-devices. i.e. Outlet in a Powerstrip. The Parent device's ID. type_override (String, optional):
 Used to override the device type when a device inherits from a device other than WinkDevice. Returns: response_json (Dict):
 The API's response in dictionary format """

        object_id = id_override or device.object_id()
        object_type = type_override or device.object_type()
        url_string = "{}/{}s/{}/update_firmware".format(self.BASE_URL,
                                                        object_type,
                                                        object_id)
        try:
            arequest = requests.post(url_string,
                                     headers=API_HEADERS)
            response_json = arequest.json()
            return response_json
        except requests.exceptions.RequestException:
            return None