code: @Override
    public synchronized void flush() throws IOException {
      checkOpen();
      COSDataBlocks.DataBlock dataBlock = getActiveBlock();
      if (dataBlock != null) {
        dataBlock.flush();
      }
    }
docs: The flush operation does not trigger an upload; that awaits the next block
  being full. What it does do is call {@code flush() } on the current block,
  leaving it to choose how to react.
  
  @throws IOException Any IO problem