Precisei algo parecido, caso exista eu atualizo algumas variáveis, caso contrário eu insiro os dados:
cCmdSql:="if exists (select usuario from SSW_USUARIO where Usuario = '"+cGet01_S1+"') "+;
" begin "+;
" update ssw_usuario set "+;
" nome = '"+ cGet06_S1 +"',"+;
" senha = '"+ cGet02_S1 +"',"+;
" nivel = "+ str(cGet05_S1,1)+","+;
" email = '"+ cGetEma +"',"+;
" emailsenha = '"+ cGetSen +"',"+;
" telddd = '"+ cGetDDD +"',"+;
" telnr = '"+ cGetTel +"',"+;
" telramal = '"+ cGetRam +"'"+;
" where usuario = '"+cGet01_S1+"' "+;
" end "+;
"else "+;
" begin "+;
" insert into ssw_usuario(filial,usuario,nome,senha,nivel,email,emailsenha,telddd,telnr,telramal) "+;
" values( "+;
" '"+RET_FILIAL_SSW(cGet04_S1)+"',"+;
" '"+cGet01_S1+"',"+;
" '"+cGet06_S1+"',"+;
" '"+cGet02_S1+"',"+;
" "+str(cGet05_S1,1)+","+;
" '"+cGetEma+"',"+;
" '"+cGetSen+"',"+;
" '"+cGetDDD+"',"+;
" '"+cGetTel+"',"+;
" '"+cGetRam+"')"+;
" end"