if you have multiple objects and you want to resize each of them variably, you'll need a script. As you pointed out, transform each uses a uniform scale percentage, so you'd have to select all of the items that should be scaled by a certain percentage, then scale them, deselect and then select the next group.
Fortunately a script for this purpose is really straightforward. Obtain an array of the items you want to process (this could be by pre-selecting them in the UI before running the script, targeting a certain layer, or programatically identifying the necessary elements. for the purposes of this example, I'll assume you already have an array of items.. Then if need be, we can discuss how to obtain that array. Try this snippet:
function resizeObjectsToSpecificSize()
{
var doc = app.activeDocument;
var layers = doc.layers;
var itemsToResize = [];
//populate the array of items to resize.. for this example, i'm just targeting everything on layers[0];
for(var i=0;i<layers[0].pageItems.length;i++)
{
itemsToResize.push(layers[0].pageItems[i]);
}
const DW = 50; //desired width: 50pt
const DH = 50; //desired height: 50pt
for(var i=0;i<itemsToResize.length;i++)
{
itemsToResize[i].width = DW;
itemsToResize[i].height = DH;
}
}
resizeObjectsToSpecificSize(app.activeDocument.layers[0]
Edit* the above will set the absolute height/width to whatever values are in those constants. To scale proportionally, you'll need to identify the largest dimension of the current object, then do the math to get a scale percentage which will scale the object such that the largest dimension matches your desired dimension. like this:
var myItem = doc.layers[0].pageItems[0];
var largestDimension = myItem.width > myItem.height ? myItem.width : myItem.height;
const desiredDimension = 50; //50pt desired dimension of largest side of object
var scaleFactor = (desiredDimension/largestDimension)*100; // (target value divided by current value) quantity to get a ratio, multiplied by 100 to make a percentage
myItem.resize(scale,scale);