Testing success of AWK code in KSH script

I need a bit of help here on something simple.

I have a KSH script (must be KSH) that needs to change 2 positional variables in a CSV script.

The CSV script looks like this:

00001,010109,01/01/2009 00:01:01
00008,090509,09/05/2009 13:47:26

My AWK script will change $2 and $3 based on the value of $1.
The values in $1 are distinct and must match to one of the values in the first column with every call to this script.

cat csv_file.csv | awk 'BEGIN {FS=","; OFS=FS}
  	{
  		if($1 == one) {
  			$2 = two
  			$3 = three
  		}
  	print 
  	}' one="${one}" two="${two}" three="${three}" > tmp_file.csv

So far it works fine.

What I'm wondering how to do is to test if the AWK code successfully completed.
If I call $? I always get a status of 0 (since the cat does work fine).

How do I verify that the AWK code did not error out?

What about checking to see if "tmp_file.csv" was created?
Or, in alternate, if that file has a recent date/time stamp.

I thought of that, but the code as written creates tmp_file.csv regardless of finding a match or not.

if [ ! -s myfile ]
   then
   echo "created a zero-length file"
fi

Unfortunately, that does not work either.

I have to take whatever data is in csv_file.csv (orig. file) and carry it through to the tmp file (tmp_file.csv). I need to move the entire 'file' which consists of many 'records' and only change the data in position 2 and 3 on a match to the data in position 1.

The print outside of the IF statement in the awk code allows all data to pass through to the tmp file, so even when the IF statement fails (awk) I still get a file with all data, but no match.

Was hoping to catch this in the awk statement. Guess I'll need to write more code to catch this type of error earlier.