code: def _process_transfer(self, ud, ase, offsets, data):
          # type: (Uploader, blobxfer.models.upload.Descriptor,
          #        blobxfer.models.azure.StorageEntity,
          #        blobxfer.models.upload.Offsets, bytes) -> None
          
          # issue put range
          self._put_data(ud, ase, offsets, data)
          # accounting
          with self._transfer_lock:
              if ud.local_path.use_stdin:
                  self._upload_bytes_total += offsets.num_bytes
              elif offsets.chunk_num == 0:
                  self._upload_bytes_total += ase.size
              self._upload_bytes_sofar += offsets.num_bytes
              self._transfer_set.remove(
                  blobxfer.operations.upload.Uploader.create_unique_transfer_id(
                      ud.local_path, ase, offsets))
          ud.complete_offset_upload(offsets.chunk_num)
          # add descriptor back to upload queue only for append blobs
          if ud.entity.mode == blobxfer.models.azure.StorageModes.Append:
              self._upload_queue.put(ud)
          # update progress bar
          self._update_progress_bar(stdin=ud.local_path.use_stdin)
docs: Process transfer instructions
          :param Uploader self: this
          :param blobxfer.models.upload.Descriptor ud: upload descriptor
          :param blobxfer.models.azure.StorageEntity ase: Storage entity
          :param blobxfer.models.upload.Offsets offsets: offsets
          :param bytes data: data to upload