docs: def update(
          self,
          filename=None,
          batch_id=None,
          prev_batch_id=None,
          producer=None,
          count=None,
      ):
          """Creates an history model instance.
          """
          # TODO: refactor model enforce unique batch_id
          # TODO: refactor model to not allow NULLs
          if not filename:
              raise BatchHistoryError("Invalid filename. Got None")
          if not batch_id:
              raise BatchHistoryError("Invalid batch_id. Got None")
          if not prev_batch_id:
              raise BatchHistoryError("Invalid prev_batch_id. Got None")
          if not producer:
              raise BatchHistoryError("Invalid producer. Got None")
          if self.exists(batch_id=batch_id):
              raise IntegrityError("Duplicate batch_id")
          try:
              obj = self.model.objects.get(batch_id=batch_id)
          except self.model.DoesNotExist:
              obj = self.model(
                  filename=filename,
                  batch_id=batch_id,
                  prev_batch_id=prev_batch_id,
                  producer=producer,
                  total=count,
              )
              obj.transaction_file.name = filename
              obj.save()
          return obj