<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def full_update_params(self, conn_method_name, params):
 """ When a API method on the collection is called, this goes through the params & run a series of hooks to allow for updating those parameters. Typically, this method is **NOT** call by the user. However, the user may wish to define other methods (i.e. ``update_params`` to work with multiple parameters at once or ``update_params_METHOD_NAME`` to manipulate a single parameter) on their class, which this method will call. :param conn_method_name: The name of the underlying connection method about to be called. Typically, this is a "snake_cased" variant of the API name (i.e. ``update_bucket`` in place of ``UpdateBucket``). :type conn_method_name: string :param params: A dictionary of all the key/value pairs passed to the method. This dictionary is transformed by this call into the final params to be passed to the underlying connection. :type params: dict """

        # We'll check for custom methods to do addition, specific work.
        custom_method_name = 'update_params_{0}'.format(conn_method_name)
        custom_method = getattr(self, custom_method_name, None)

        if custom_method:
            # Let the specific method further process the data.
            params = custom_method(params)

        # Now that all the method-specific data is there, apply any further
        # service-wide changes here.
        params = self.update_params(conn_method_name, params)
        return params