SPI_finish closes an existing connection to
   the SPI manager.  You must call this function after completing the
   SPI operations needed during your procedure's current invocation.
   You do not need to worry about making this happen, however, if you
   abort the transaction via elog(ERROR).  In that
   case SPI will clean itself up automatically.
  
   If SPI_finish is called without having a valid
   connection, it will return SPI_ERROR_UNCONNECTED.
   There is no fundamental problem with this; it means that the SPI
   manager has nothing to do.