Wine doesn't handle Pooling as yet and in my scenario it's set to 0 (No Pooling), so not an issue but requires a successful return value.
SQLTransact incorrectly assumed that if either handle was NULL an error occurred. I'm seeing a call where the Environment handle is NULL, even unixODBC handles this scenario.