docs: def add_or_update_record(
              self, final_path, ase, chunk_size, next_integrity_chunk,
              completed, md5):
          # type: (DownloadResumeManager, pathlib.Path,
          #        blobxfer.models.azure.StorageEntity, int, int, bool,
          #        str) -> None
          """Add or update a resume record
          :param DownloadResumeManager self: this
          :param pathlib.Path final_path: final path
          :param blobxfer.models.azure.StorageEntity ase: Storage Entity
          :param int chunk_size: chunk size in bytes
          :param int next_integrity_chunk: next integrity chunk
          :param bool completed: if completed
          :param str md5: md5 hex digest
          """
          key = blobxfer.operations.resume._BaseResumeManager.\
              generate_record_key(ase)
          with self.datalock():
              dl = self.get_record(ase, key=key, lock=False)
              if dl is None:
                  dl = blobxfer.models.resume.Download(
                      final_path=str(final_path),
                      length=ase._size,
                      chunk_size=chunk_size,
                      next_integrity_chunk=next_integrity_chunk,
                      completed=completed,
                      md5=md5,
                  )
              else:
                  if (dl.completed or
                          next_integrity_chunk < dl.next_integrity_chunk):
                      return
                  if completed:
                      dl.completed = completed
                  else:
                      dl.next_integrity_chunk = next_integrity_chunk
                      dl.md5hexdigest = md5
              self._data[key] = dl
              self._data.sync()