docs: def insert_volume(language, filepath, notes, metadata):
      '''
      Add a new volume to libreant.
  
      The metadata of the volume are taken from a json file whose path must be
      passed as argument. Passing "-" as argument will read the file from stdin.
      language is an exception, because it must be set using --language
  
      For every attachment you must add a --file AND a --notes.
  
      \b
      Examples:
          Adds a volume with no metadata. Yes, it makes no sense but you can
            libreant-db insert-volume -l en - <<<'{}'
          Adds a volume with no files attached
            libreant-db insert-volume -l en - <<EOF
            {
              "title": "How to create volumes",
              "actors": ["libreant devs", "open access conspiration"]
            }
            EOF
          Adds a volume with one attachment but no metadata
            libreant-db insert-volume -l en -f /path/book.epub --notes 'poor quality'
          Adds a volume with two attachments but no metadata
            libreant-db insert-volume -l en -f /path/book.epub --notes 'poor quality' -f /path/someother.epub --notes 'preprint'
  
      '''
      meta = {"_language": language}
      if metadata:
          meta.update(json.load(metadata))
      attachments = attach_list(filepath, notes)
      try:
          out = arc.insert_volume(meta, attachments)
      except Exception:
          die('An upload error have occurred!', exit_code=4)
      click.echo(out)