<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def put(self, rid, data, raise_on_error=True):
 """Update the data for the provided Id. Args: rid (str):
 The record identifier. data (dict):
 A search query raise_on_error (bool):
 If True and not r.ok this method will raise a RunTimeError. Returns: object : Python request response. """

        response_data = None
        headers = {'Content-Type': 'application/json', 'DB-Method': 'PUT'}
        url = '/v2/exchange/db/{}/{}/{}'.format(self.domain, self.data_type, rid)
        r = self.tcex.session.post(url, json=data, headers=headers)
        self.tcex.log.debug('datastore put status code: {}'.format(r.status_code))
        if r.ok and 'application/json' in r.headers.get('content-type', ''):
            response_data = r.json()
        else:
            error = r.text or r.reason
            self.tcex.handle_error(805, ['put', r.status_code, error], raise_on_error)
        return response_data