<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def save_attributes(self, request_envelope, attributes):
 # type: (RequestEnvelope, Dict[str, object]) -> None """Saves attributes to table in Dynamodb resource. Saves the attributes into Dynamodb table. Raises PersistenceException if table doesn't exist or ``put_item`` fails on the table. :param request_envelope: Request Envelope passed during skill invocation :type request_envelope: ask_sdk_model.RequestEnvelope :param attributes: Attributes stored under the partition keygen mapping in the table :type attributes: Dict[str, object] :rtype: None :raises: :py:class:`ask_sdk_core.exceptions.PersistenceException` """

        try:
            table = self.dynamodb.Table(self.table_name)
            partition_key_val = self.partition_keygen(request_envelope)
            table.put_item(
                Item={self.partition_key_name: partition_key_val,
                      self.attribute_name: attributes})
        except ResourceNotExistsError:
            raise PersistenceException(
                "DynamoDb table {} doesn't exist. Failed to save attributes "
                "to DynamoDb table.".format(
                    self.table_name))
        except Exception as e:
            raise PersistenceException(
                "Failed to save attributes to DynamoDb table. Exception of "
                "type {} occurred: {}".format(
                    type(e).__name__, str(e)))