Unfortunately, there is not a fast/easy way to do this (as far as I know).
You will have the use the following classes:
ObjectPermissions
PermissionSet
User
First retrieve the Id of the user you want to assign the Record.
User userTarget = [SELECT Id FROM User WHERE ...];
After that, retrieve all the PermissionSetAssigment for that User (in this class, all types of permission counts: from profile, permission set, custom permission, and so on). Also, store the ids in a set to use them to query.
Set<Id> permissionSets = new Set<Id>();
for(PermissionSetAssignment up : [SELECT PermissionSetId FROM PermissionSetAssignment WHERE AssigneeId = :userTarget.Id]){
permissionSets.add(up.PermissionSetId);
}
Finally, get the ObjectPermission of the sObject type you are trying to assign
for(ObjectPermissions objPerm : [SELECT PermissionsCreate FROM ObjectPermissions WHERE ParentId IN :permissionSets ANd sObjectType = 'Account']){
if(objPerm.PermissionsCreate){
System.debug('Account Create access!');
break;
}
}