docstr: Inserts a song name into the database, returns the new
  identifier of the song.
  
  :param song_name: The name of the song.
  :param file_hash: Hash from the fingerprinted file.
  :param total_hashes: amount of hashes to be inserted on fingerprint table.
  :return: the inserted id.
docstr_tok: ["Inserts","a","song","name","into","the","database",",","returns","the","new","identifier","of","the","song",".",":","param","song_name",":","The","name","of","the","song",".",":","param","file_hash",":","Hash","from","the","fingerprinted","file",".",":","param","total_hashes",":","amount","of","hashes","to","be","inserted","on","fingerprint","table",".",":","return",":","the","inserted","id","."]
code: def insert_song(
      self, song_name: str, file_hash: str, total_hashes: int
  ) -> int:
      """
      Inserts a song name into the database, returns the new
      identifier of the song.
  
      :param song_name: The name of the song.
      :param file_hash: Hash from the fingerprinted file.
      :param total_hashes: amount of hashes to be inserted on fingerprint table.
      :return: the inserted id.
      """
      pass
  
imports: import abc
  import importlib
  from typing import Dict, List, Tuple
  from dejavu.config.settings import DATABASES
label_desc: Use image node_id 13 for calling the BaseDatabase obj's underlying member method code with example usage: obj.insert_song(song_name, file_hash, total_hashes) without return types