TRUE if successful. If an error has occurred, this function will return FALSE and set error appropriately if present.
GException on failure.