docs: def put(contract_name, abi):
          '''
          save the contract's ABI
  
          :param contract_name: string - name of the contract
          :param abi: the contract's abi JSON file
          :return: None, None if saved okay
                   None, error is an error
          '''
  
          if not Catalog.path:
              return None, "path to catalog must be set before saving to it"
          if not contract_name:
              return None, "contract name must be provided before saving"
          if not abi:
              return None, "contract ABI missing"
  
          abi_file = "{}/{}.abi".format(Catalog.path, contract_name)
  
          try:
              with open(abi_file, "w+") as file:
                  file.write(abi)
          except Exception as e:
              return None, "Catalog.put error: {}".format(e)
          return None, None