First, cold engine startup should go like this.
Crank engine(foot OFF the gas pedal)
engine starts and RPMs go up to 1,500+, because IAC valve is fully opened
RPMs then drop to approx. 1,100, cold idle set by temperature of coolant, as read by ECT sensor.
As coolant warms up idle will slowly go down
within 5 to 10minutes engine will be fully warmed up to 190-200degF, t-stat should be 192/195degF
idle should now be 650(manual trans), 750(automatic).
Fuel injected engines can't use a Choke Plate because they have no jets, so they use a computer software routine as the Choke which is required when starting any cold engine.
The computer will set a high idle, run a richer mix and advance the spark timing in "choke mode"
The first thing the computer does when you turn on the key is to check the ECT sensor.
ECT sensor is a TWO wire sensor located near the thermostat housing.
There is also a ONE wire sender that will be nearby, that is the temp sender for the dash board gauge, these look similar but are not shared.
The ECT sensor is a simple resistance sensor, low resistance when cold, high resistance when hot.
Computer sends it 5volts on one wire when on.
If computer gets back 3volts on the other wire then engine is cold, under 1volt and engine is warmed up.
Computer bases if engine is cold or warm on this one sensor.
You can check the voltage on both wires cold and then hot and see if sensor is working as it should.
But if the cold start info above doesn't match what you are seeing at cold start, i.e. high idle, then ECT sensor could be the issue, assuming IAC Valve is working.