Just a note, why don't you add the provider for Solaris where the package is declared (in init.pp) and leave it undef for all the other OSes (as Puppet is able to detect the right provider for the relevant OS )?
Also, are you sure that puppet doesn't already set pkgutil for Solaris as default provider (as it sets yum for redhat and zypper for sles)?