code: def increment_counter(self, id, counter_name, increment=1,
                            id_name='id', **kwargs):
          
          response = self._new_response()
          if self._check_supported_op('increment_counter', response):
              params = {
                  'Key': {id_name: id},
                  'UpdateExpression': 'set #ctr = #ctr + :val',
                  'ExpressionAttributeNames': {"#ctr": counter_name},
                  'ExpressionAttributeValues': {
                      ':val': decimal.Decimal(increment)},
                  'ReturnValues': 'UPDATED_NEW'
              }
              self._call_ddb_method(self.table.update_item, params, response)
              if response.status == 'success':
                  if 'Attributes' in response.raw_response:
                      self._replace_decimals(response.raw_response)
                      attr = response.raw_response['Attributes'][counter_name]
                      response.data = attr
          response.prepare()
          return response
docs: Atomically increments a counter attribute in the item identified by
          ``id``.  You must specify the name of the attribute as ``counter_name``
          and, optionally, the ``increment`` which defaults to ``1``.