<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, job_binary_id, data):
 """Update Job Binary. :param dict data: dict that contains fields that should be updated with new values. Fields that can be updated: * name * description * url * is_public * is_protected * extra - dict with the keys `user` and `password` for job binary in Swift, or with the keys `accesskey`, `secretkey`, and `endpoint` for job binary in S3 """


        if self.version >= 2:
            UPDATE_FUNC = self._patch
        else:
            UPDATE_FUNC = self._update

        return UPDATE_FUNC(
            '/job-binaries/%s' % job_binary_id, data, 'job_binary')